[1Password]管理しているSSHの秘密鍵の情報をopコマンドで確認
- t_o_dと申します。
- パスワードマネージャーとして1Passwordを利用していて、日常的なものからSSHキーの管理も行なっております。
- 普段はGUIツールやChrome拡張で利用していますが、CLIツール(opコマンド)もありターミナルやスクリプトで参照や取得を行いたい時に便利です。
- 今回は1Passwordの管理しているSSH秘密鍵情報をopコマンドで確認する方法を記録いたします。
環境
- mac OS Ventura 13.1
- 1Password for Mac 8.9.13
- op 2.13.1
- jq 1.6
結論
- 以下をターミナルに入力して実行すれば、Privateで管理しているSSHの秘密鍵の情報をopコマンドで確認することができます。
op item list --vault Private --format json | jq '.[] | select(.category=="SSH_KEY")' | op item get - --format json | jq '.fields[] | select(.label=="秘密鍵")'
内容
- 上記のコマンドは以下2つのopコマンドで用意されているサブコマンドを利用しています。
- まずlistサブコマンドを利用して1Passwordに登録されているアイテムの一覧情報を取得します。
- その際に「Privateのみの取得」「完全な情報の取得」を行いたかったので、以下のオプションを利用しました。
--vault vault名
: vault名の指定。--format json
: json形式かつ詳細な情報での出力。
- 次にカテゴリがSSHのものに絞りたかったので、jqを利用してリスト情報内の
category
フィールドをSSH_KEYでフィルタリングしました。- ※listサブコマンドにcategoriesオプションが存在しますがSSH_KEYでは上手く取得できませんでした。
- 次にgetサブコマンドを利用して各アイテムの詳細情報を取得します。
- getには「アイテム名」や「アイテムID」でも渡せますが、
-
とすることでオブジェクト自体を標準入力で渡すことが可能です。 - その際も「詳細かつ扱いやすい形式での取得」を行いたかったので、
--format json
オプションを利用しました。 - 最後に秘密鍵の情報に絞りたかったので、jqを利用して情報内の
label
フィールドを秘密鍵でフィルタリングしました。
まとめ
- 1PasswordでSSHの管理が行えるようになって非常に便利な日々ですが、更にopコマンドを利用すれば「管理情報の参照」や「スクリプトでの活用」に活かせると感じました。
参考
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。